package com.cw.DesignModel23.Ceational.BuilderPattern.builder5;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class HTMLBuilder extends Builder {
    /**
     * 文件名
     */
    private String filename;
    /**
     * 用于编写文件的PrintWriter
     */
    private PrintWriter writer;

    /**
     * HTML文件的标题
     *
     * @param title
     */
    public void makeTitle(String title) {
        // 将标题作为文件名
        filename = title + ".html";
        try {
            // 生成 PrintWriter
            writer = new PrintWriter(new FileWriter(filename));
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 输出标题
        writer.println("<html><head><title>" + title + "</title></head><body>");
        writer.println("<h1>" + title + "</h1>");
    }

    /**
     * HTML文件中的字符串
     *
     * @param str
     */
    public void makeString(String str) {
        // 用<p>标签输出
        writer.println("<p>" + str + "</p>");
    }

    /**
     * HTML文件中的条目
     *
     * @param items
     */
    public void makeItems(String[] items) {
        // 用<ul>和<li>输出
        writer.println("<ul>");
        for (int i = 0; i < items.length; i++) {
            writer.println("<li>" + items[i] + "</li>");
        }
        writer.println("</ul>");
    }

    /**
     * 完成文档
     */
    public void close() {
        // 关闭标签
        writer.println("</body></html>");
        // 关闭文件
        writer.close();
    }

    public String getResult() {
        // 编写完成的文档
        return filename;
    }
}

